package echo.client;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.URI;
import java.util.Scanner;

import io.netty.bootstrap.Bootstrap;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.handler.codec.http.DefaultFullHttpRequest;
import io.netty.handler.codec.http.HttpHeaderNames;
import io.netty.handler.codec.http.HttpMethod;
import io.netty.handler.codec.http.HttpVersion;

public class EchoClient {

    private static String host = "127.0.0.1";
    private static int port = 40001;

    public EchoClient(String host, int port) {
//        this.host = host;
//        this.port = port;
    }

    public void sendMsg(String message) throws IOException{
//		ByteBuffer writeBuffer = ByteBuffer.wrap(message.getBytes("UTF-16"));
//		socketChannel.write(writeBuffer);
    }
    
    public void start() throws Exception {
        EventLoopGroup group = new NioEventLoopGroup();
        try {
            Bootstrap b = new Bootstrap();              //1
            b.group(group)                              //2
             .channel(NioSocketChannel.class)           //3
             .remoteAddress(new InetSocketAddress(host, port))  //4
             .handler(new ChannelInitializer<SocketChannel>() { //5
                 @Override
                 public void initChannel(SocketChannel ch) 
                     throws Exception {
                     ch.pipeline().addLast(new EchoClientHandler());
                 }
             });

            

            for(int i=0; i<10; i++){
            	ChannelFuture f = b.connect().sync();       //6
	            f.channel().write(Unpooled.wrappedBuffer(("test " + i).getBytes("UTF-8")));
	            f.channel().flush();
	            f.channel().closeFuture().sync();           //7
            }
	        
        } finally {
            group.shutdownGracefully().sync();          //8
        }
    }

	static EchoClient client;
	static boolean mFlag = true;
	
    public static void main(String[] args) throws Exception {
//        if (args.length != 2) {
//            System.err.println(
//                    "Usage: " + EchoClient.class.getSimpleName() +
//                    " <host> <port>");
//            return;
//        }
//
//        final String host = args[0];
//        final int port = Integer.parseInt(args[1]);

        new EchoClient(host, port).start();
    }
}
